<?php
	/* Function module membre */
	
	//Enregistrement des fonction dans la timeline de chargement automatique
	//Permet d'accedez au fonction depuis n'importe ou (dans tous les function.inc.php des modules + le site entiers) (même si ce fichier function.inc.php est le dernier à être chargé par exemple)
	
	spl_autoload_register("estFemme");
	spl_autoload_register("getPeopleOnline");
	spl_autoload_register("memberUpdateConnected");
	spl_autoload_register("memberUpdateTimeVisite");
	spl_autoload_register("isOnline");
	spl_autoload_register("is_online");
	spl_autoload_register("deletePeopleOnline");
	spl_autoload_register("updatePeopleOnline");
	spl_autoload_register("GetNombreHommeInscrits");
	spl_autoload_register("estAmi");
	spl_autoload_register("estAmi2");
	spl_autoload_register("GetLocalite");
	spl_autoload_register("getWhosfriends");
	spl_autoload_register("GetAvatarById");
	spl_autoload_register("GetAvatarCercleById");
	spl_autoload_register("GetAvatarMinitById");
	spl_autoload_register("GetSuperMiniAvatarById");
	spl_autoload_register("UpdateAvatarById");
	spl_autoload_register("GetAgeById");
	spl_autoload_register("GetPrenomById");
	spl_autoload_register("GetVilleById");
	spl_autoload_register("getLastPeopleJoin");
	spl_autoload_register("getParseAvatar");
	spl_autoload_register("estHomme");
	spl_autoload_register("sex2color");
	spl_autoload_register("sex2ManualColor");
	spl_autoload_register("groupe2name");
	spl_autoload_register("isLogged");
	spl_autoload_register("getNumberFriendsOnline");
	spl_autoload_register("getNumberFriends");
	spl_autoload_register("getNumberFriendsOffline");
	spl_autoload_register("id2zodiaque");
	spl_autoload_register("pseudo2id");
	spl_autoload_register("id2sex");
	spl_autoload_register("id2mail");
	spl_autoload_register("id2level");
	spl_autoload_register("id2pseudo");
	spl_autoload_register("id2prenom");
	spl_autoload_register("bonus");
	function estFemme($membreId)
	{
		$val = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId);
		
		return $val=='femme'?true:false;
	}
	
	//function getPeopleOnline permet de renvoyer des informations de la pr�sence des personnes sur le site

	//Return Array

	//By infoxp


	
	function getPeopleOnline() {

		global $pdo;

		

		$info = array();

		//On enl�ve le numero de page de l'url � save dans la bdd



		

		$peopleVisitor = $pdo->prepare("SELECT membre_status FROM forum_whosonline as fwo LEFT OUTER JOIN forum_membres as fm ON fwo.membre_id=fm.membre_id WHERE (fwo.membre_id=-1 AND membre_status='Hors ligne') OR (fwo.membre_id=-1)");

		$peopleVisitor->execute();

		$info['countPeopleVisitor'] = intval($peopleVisitor->rowCount());

		$peopleVisitor->closeCursor();

		/* Nombre de membres */

		$peopleMember = $pdo->prepare("SELECT membre_status FROM forum_whosonline as fwo JOIN forum_membres as fm ON fwo.membre_id=fm.membre_id WHERE fwo.membre_id>0 AND membre_status!='Hors ligne'");

		$peopleMember->execute();

		$info['countPeopleMember'] = intval($peopleMember->rowCount());

		$peopleMember->closeCursor();

		
		
		$peopleMemberAbs = $pdo->prepare("SELECT membre_status FROM forum_whosonline as fwo JOIN forum_membres as fm ON fwo.membre_id=fm.membre_id WHERE fwo.membre_id>0 AND membre_status!='Hors ligne' AND membre_status='Absent'");

		$peopleMemberAbs->execute();

		$info['countPeopleMemberAbsent'] = intval($peopleMemberAbs->rowCount());

		$peopleMemberAbs->closeCursor();
		
		
		

		$people = $pdo->prepare("SELECT membre_status,fwo.membre_id FROM forum_whosonline as fwo JOIN forum_membres as fm ON fwo.membre_id=fm.membre_id WHERE membre_status!='Hors ligne' AND membre_status!='Absent'");

		$people->execute();

		$memberList = '';

		

			$info['countPeople'] = intval($info['countPeopleMember'] + $info['countPeopleVisitor']);

		

		$i = 0;

		while($data = $people->fetch()){

			if($data['membre_id'] != -1)

			{

				if($i==0){

					$memberList	.= ' : '.sex2color(id2sex($data["membre_id"]),$data["membre_id"]);

					$i=1;

				}else{

					$memberList .= ' / ' . sex2color(id2sex($data["membre_id"]),$data["membre_id"]);

				}

			}

		}

		

		$people->closeCursor();

		$info['memberList'] = $memberList;

		

		return $info;	

	}
	
	
	//memberUpdateConnect and memberUpdateTimeVisite by infoxp

	//permet de mettre � jour la date de visite et le membre_connected pour l'image en ligne ou non

	//timeout 5min => refresh des infos toute les 5 minutes, heures derniere visite du membre

	//si le membre n'est plus l� , on refrsh pas sa date de derniere visite et ainsi dans voirprofil l'image se mettra en d�connect�

	//au bout de 5 minutes d'innactivit�

	function memberUpdateConnected($login=false){

		global $pdo;

		if($login){

			$req = $pdo->prepare("UPDATE forum_membres SET membre_derniere_visite=?,membre_connected='1' WHERE membre_id=?");

				$req->execute(array(time(),$_SESSION['id']));

		}else{

			$req = $pdo->prepare("UPDATE forum_membres SET membre_derniere_visite=?,membre_connected='0' WHERE membre_id=?");

				$req->execute(array(time(),$_SESSION['id']));

		}

	}
	

	function memberUpdateTimeVisite($login=false){

		global $pdo;
            $sessionid = isset($_SESSION['id']) ? $_SESSION['id'] : -1;    
			if($login){

				$req = $pdo->prepare("UPDATE forum_membres SET membre_derniere_visite=? WHERE membre_id=?");

				$req->execute(array(time(),$sessionid));

			}else{

				$req = $pdo->prepare("UPDATE forum_membres SET membre_derniere_visite=? WHERE membre_id=? AND ?>membre_derniere_visite+(60*5)");

				$req->execute(array(time(),$sessionid,time()));

			}

			

			$req->closeCursor();

	}

	function isOnline($id){
		global $pdo;
		$MemberOnlineReq = $pdo->prepare("SELECT * FROM forum_whosonline WHERE membre_id=?");
		$MemberOnlineReq->execute(array($id));
			return $MemberOnlineReq->rowCount();
	}
	
	 /**

        * regarde si membre est en ligne

        * 

        * param type $id (membre_id)

        * return boolean (true si en ligne, false si hors ligne)

        */

	function is_online($id)

       {
			global $pdo;
           $sql = $pdo->prepare('SELECT fwo.membre_id as value FROM forum_whosonline as fwo JOIN forum_membres as fm ON fm.membre_id=fwo.membre_id WHERE fm.membre_id = ? AND membre_status!="Hors Ligne"');
		   $sql->execute(array($id));
		   
		   $data = $sql->fetch();
		   
           if(sizeof($data)>0)
               return true;

           return false;

       }

	//function deletePeopleOnline permet de supprimer la pr�sence du membre sur le site

	//@bool,bool

	//Return void

	//By infoxp

	//param1 permet du delete � la deconnexion le membre membre_id,param2 permet de delete le visiteur qui se connecter depuis son ip

	function deletePeopleOnline($logoutForce=false,$loginForce=false){

		global $pdo;

		

		$sid = (isset($_SESSION['id'])) ? $_SESSION['id'] : -1;

		

		$req = "DELETE FROM forum_whosonline WHERE";

		if($logoutForce){

			$req .= " membre_id=".$sid;
		}else{

			if($loginForce)

			$req .= " online_ip=".ip2long($_SERVER['REMOTE_ADDR']);

				else

			$req .= " online_time<".time();

		}

		$delete = $pdo->query($req);

	}

	

	//function updatePeopleOnline permet de modifier le time en ligne de l'internaute

	//Return void

	//By infoxp

	function updatePeopleOnline(){

		global $pdo;

		$id = (isset($_SESSION['id'])) ? $_SESSION['id'] : -1;

		

		//mise � jour de la liste

		deletePeopleOnline();
		deletePeopleOnline(false,true);

		

		$req = $pdo->prepare("SELECT online_ip FROM forum_whosonline WHERE online_ip=?");

		$req->execute(array(ip2long($_SERVER['REMOTE_ADDR'])));

		$req->closeCursor();

			if($req->rowCount() < 1){

				//c'est un nouveau visiteur

				$req = $pdo->prepare("INSERT INTO forum_whosonline (membre_id,online_time,online_ip) VALUES(?,?,?)");

				$req->execute(array($id,time()+60*5,ip2long($_SERVER['REMOTE_ADDR'])));

				$req->closeCursor();

			}else{

				

				$req = $pdo->prepare("UPDATE forum_whosonline SET online_time=? WHERE membre_id=? OR online_ip=?");

				$req->execute(array(time()+60*5,$id,ip2long($_SERVER['REMOTE_ADDR'])));

				$req->closeCursor();

				

			}

	}
	
	//Retourne le nombres de membres inscrits sans compter les membres èvénement <= 10
	function GetNombreHommeInscrits()
	{
		global $pdo;
		$query = $pdo->prepare("SELECT count(*) as value FROM forum_membres WHERE membre_sexe = 'femme' AND membre_id > 10 AND membre_rang = ?");
		$query->execute(array(MEMBRE));$value = $query->fetch(PDO::FETCH_OBJ);
		return $value->value;
	}
	function GetNombreFemmeInscrits()
	{global $pdo;
		$query = $pdo->prepare("SELECT count(*) as value FROM forum_membres WHERE membre_sexe = 'homme' AND membre_id > 10 AND membre_rang = ?");
		$query->execute(array(MEMBRE));$value = $query->fetch(PDO::FETCH_OBJ);
		return $value->value;
	}
	
	function estAmi2($membreId, $userId)
       {
           global $pdo;
           $sql = 'SELECT * FROM forum_amis WHERE ami_from='.$membreId.' AND ami_to='.$userId.' AND ami_confirm=1';
           $val = count($pdo->query($sql));

           if($val)
                   return true;

           return false;
       }

       function estAmi($membreId, $userId)

       {

           $sql = 'SELECT membre_amis as value FROM forum_membres WHERE membre_id='.$membreId;

           $val = GetValueFromQuery($sql);

           

           if(strstr($val,$userId))

                   return true;

           

           return false;

       }

       

	function GetLocalite($id)
	{
     
        $sql = "SELECT ville as value FROM forum_localisation WHERE id=".$id;
		if($id)
			return GetValueFromQuery($sql);
	}
	
	//function getWhosfriends permet d'indiquer la pr�sence des amis sur le site

	//Return Array

	//By infoxp

	

	function getWhosfriends($limit=5){

		global $pdo;

		$info = array();

		

		$info['countFriends'] = 0;

		if(isLogged()){

			$req = $pdo->prepare("SELECT membre_status,membre_status_msg,ami_date, (ami_from + ami_to - ".intval($_SESSION['id']).") AS ami_id FROM forum_amis JOIN forum_membres as fm ON fm.membre_id = (ami_from + ami_to - ".intval($_SESSION['id']).") JOIN forum_whosonline as fw ON fw.membre_id = fm.membre_id WHERE (ami_from = '".intval($_SESSION['id'])."' OR ami_to = '".intval($_SESSION['id'])."') AND ami_confirm = '1' AND membre_status!='Hors ligne' GROUP BY fw.membre_id ORDER BY membre_pseudo LIMIT ".$limit);

			$req->execute();

			

			$info['countFriends'] = $req->rowCount();

			$info['friendsList'] = '';

			

			$i=0;
 
				while($member = $req->fetch()){

					if($i==0)

						$info['friendsList'] = "Vous avez actuellement " . (($info['countFriends']>1) ? $info['countFriends'] . ' amis' : $info['countFriends'] . ' ami') . " de connecté(s) : <br />";

					if($i>0 && $i<count($member)+1)

						$info['friendsList'] .= ','.sex2color(id2sex($member['ami_id']),$member['ami_id']);

					else

						$info['friendsList'] .= sex2color(id2sex($member['ami_id']),$member['ami_id']);

						

						$i++;

				}

			if($i<1)

				$info['friendsList'] = "Aucun de vos amis n'est connecté actuellement<br />";

			else if($i==$limit)

				$info['friendsList'] .= ", [...]";

				

				$info['friendsList'] .= '<br /><a href="'.getLienModule("membre","friendlist").'" title="">Voir ma liste d\'amis</a>';

		}else{

			$info['friendsList'] = "Connectez vous pour voir votre liste d'amis";	

		}

		

		return $info;

			

	}
	
	
	
	function GetSexById(){
	
	
	}
	
	
	
// on affiche tout les dimensions des avatars du site




function GetAvatarById($membreId,$alignCenter=true,$class='avatar_membre')

{
    if(ctype_digit($membreId)||is_int($membreId))
    {
		
    $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId);
    $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId);
    $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId);
    $level = intval($rang);
    $str = ($alignCenter) ? '<div class="texte_center">' : '';

		$avatarHighLevel = function($level) use($class){
			$str = "";
				if($level == ADMIN)	$str .=  '<a title="Administrateur"><img class="'.$class.'" src="avatar/avatar_par_default/avatar_admin.png" alt="" title=""></a>';
	
			else if($level == MODO) $str .=  '<a title="Modérateur"><img class="'.$class.'" src="avatar/avatar_par_default/avatar_modo.png" alt="" title=""></a>';
			
			return $str;
		};

    if(!empty($value))

    { 
		if(file_exists(DIR_AVATAR."/avatar_membres/".$value))
        	$str .= '<img class="'.$class.'" src="'.DIR_AVATAR.'/avatar_membres/'.$value.'" alt="" title=""/>';
		else{
			$a = $avatarHighLevel($level);
				if($a!="")
					$str .= $a;
				else
					$str .= '<img class="'.$class.'" src="'.DIR_AVATAR.'/avatar_par_default/avatar_question.png" alt="Avatar de ce membre introuvable" title="avatar de ce membre introuvable" />';
		}
    }else {

        if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME)

            $str .= '<a class="separator" title=""></a>';



        $a = $avatarHighLevel($level);
	  if($a!="")
			$str .= $a;
      else if($level == NEWSER)

            $str .=  '<a title="Newser"><img class="'.$class.'" src="avatar/avatar_par_default/avatar_news.png" alt="" title=""></a>';

        else if($sex===HOMME && $value=="")

            $str .=  '<a title="Membre Homme"><img class="'.$class.'" src="avatar/avatar_par_default/avatar_homme.png" alt="" title=""></a>';

        else if($sex===FEMME && $value=="")

            $str .=  '<a title="Membre Femme"><img class="'.$class.'" src="avatar/avatar_par_default/avatar_femme.png" alt="" title=""></a>'; 

        else

        {

            $str .= '<img class="'.$class.'" alt="" title=""src="avatar/avatar_membres/'.$value.'"/>';

        }

    }

    $str .= ($alignCenter) ? "</div>" : '';

    

    return $str;
    }else{
		return '<img class="'.$class.'" src="'.DIR_AVATAR.'/avatar_par_default/avatar_question.png" />';
	}
}
	
function GetAvatarCercleById($membreId,$alignCenter=true)

{
    if(ctype_digit($membreId))
    {
    $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId);
    $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId);
    $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId);
    $level = intval($rang);
    $str = ($alignCenter) ? '<div class="texte_center">' : '';

		$avatarHighLevel = function($level){
			$str = "";
				if($level == ADMIN)	$str .=  '<a title="Administrateur"><img class="avatar_forme_rond" src="avatar/avatar_par_default/avatar_admin.png" alt="" title=""></a>';
	
			else if($level == MODO) $str .=  '<a title="Modérateur"><img class="avatar_forme_rond" src="avatar/avatar_par_default/avatar_modo.png" alt="" title=""></a>';
			
			return $str;
		};

    if(!empty($value))

    { 
		if(file_exists(DIR_AVATAR."/avatar_membres/".$value))
        	$str .= '<img class="avatar_forme_rond" src="'.DIR_AVATAR.'/avatar_membres/'.$value.'" alt="" title=""/>';
		else{
			$a = $avatarHighLevel($level);
				if($a!="")
					$str .= $a;
				else
					$str .= '<img class="avatar_forme_rond" src="'.DIR_AVATAR.'/avatar_par_default/avatar_question.png" alt="Avatar de ce membre introuvable" title="avatar de ce membre introuvable" />';
		}
    }else {

        if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME)

            $str .= '<a class="separator" title=""></a>';



        $a = $avatarHighLevel($level);
	  if($a!="")
			$str .= $a;
      else if($level == NEWSER)

            $str .=  '<a title="Newser"><img class="avatar_forme_rond" src="avatar/avatar_par_default/avatar_news.png" alt="" title=""></a>';

        else if($sex===HOMME && $value=="")

            $str .=  '<a title="Membre Homme"><img class="avatar_forme_rond" src="avatar/avatar_par_default/avatar_homme.png" alt="" title=""></a>';

        else if($sex===FEMME && $value=="")

            $str .=  '<a title="Membre Femme"><img class="avatar_forme_rond" src="avatar/avatar_par_default/avatar_femme.png" alt="" title=""></a>'; 

        else

        {

            $str .= '<img class="avatar_forme_rond" alt="" title=""src="avatar/avatar_membres/'.$value.'"/>';

        }

    }

    $str .= ($alignCenter) ? "</div>" : '';

    

    return $str;
    }
}
	
	
	
	
	
	
	
	
	
	
	
	
function GetAvatarMinitById($membreId,$alignCenter=true)

{
    if($membreId)
    {
    $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId);

    
    $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId);

    $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId);


    $level = intval($rang);

    

    $str = ($alignCenter) ? '<div class="texte_center">' : '';

	$avatarHighLevel = function($level){
			$str = "";
				if($level == ADMIN)	$str .=  '<a title="Administrateur"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_admin.png" alt="" title=""></a>';
	
			else if($level == MODO) $str .=  '<a title="Modérateur"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_modo.png" alt="" title=""></a>';
			
			return $str;
		};
		

    if(!empty($value))

    { 
		if(file_exists(DIR_AVATAR."/avatar_membres/".$value))
        	$str .= '<img class="mini_avatar_inscrit" src="'.DIR_AVATAR.'/avatar_membres/'.$value.'" alt="" title=""/>';
		else{
			$a = $avatarHighLevel($level);
				if($a!="")
					$str .= $a;
				else
					$str .= '<img class="mini_avatar_inscrit" src="'.DIR_AVATAR.'/avatar_par_default/avatar_question.png" alt="Avatar de ce membre introuvable" title="avatar de ce membre introuvable" />';
		}
    }else {

        if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME)

            $str .= '<a class="separator" title=""></a>';



        if($level == ADMIN)

            $str .=  '<a title="Administrateur"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_admin.png" alt="" title=""></a>';

        else if($level == MODO)

            $str .=  '<a title="Modérateur"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_modo.png" alt="" title=""></a>';

        else if($level == NEWSER)

            $str .=  '<a title="Newser"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_news.png" alt="" title=""></a>';

        else if($sex===HOMME && $value=="")

            $str .=  '<a title="Membre Homme"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_homme.png" alt="" title=""></a>';

        else if($sex===FEMME && $value=="")

            $str .=  '<a title="Membre Femme"><img class="mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_femme.png" alt="" title=""></a>'; 

        else

        {

            $str .= '<img class="mini_avatar_inscrit" alt="" title=""src="avatar/avatar_membres/'.$value.'"/>';

        }

    }

    $str .= ($alignCenter) ? "</div>" : '';

    

    return $str;
    }
}

function GetSuperMiniAvatarById($membreId,$alignCenter=true)

{
    if($membreId)
    {
    $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId);

    
    $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId);

    $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId);


    $level = intval($rang);

    

    $str = ($alignCenter) ? '<div class="texte_center">' : '';

	$avatarHighLevel = function($level){
			$str = "";
				if($level == ADMIN)	$str .=  '<a title="Administrateur"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_admin.png" alt="" title=""></a>';
	
			else if($level == MODO) $str .=  '<a title="Modérateur"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_modo.png" alt="" title=""></a>';
			
			return $str;
		};
		

    if(!empty($value))

    { 
		if(file_exists(DIR_AVATAR."/avatar_membres/".$value))
        	$str .= '<img class="super_mini_avatar_inscrit" src="'.DIR_AVATAR.'/avatar_membres/'.$value.'" alt="" title=""/>';
		else{
			$a = $avatarHighLevel($level);
				if($a!="")
					$str .= $a;
				else
					$str .= '<img class="super_mini_avatar_inscrit" src="'.DIR_AVATAR.'/avatar_par_default/avatar_question.png" alt="Avatar de ce membre introuvable" title="avatar de ce membre introuvable" />';
		}
    }else {

        if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME)

            $str .= '<a class="separator" title=""></a>';



        if($level == ADMIN)

            $str .=  '<a title="Administrateur"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_admin.png" alt="" title=""></a>';

        else if($level == MODO)

            $str .=  '<a title="Modérateur"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_modo.png" alt="" title=""></a>';

        else if($level == NEWSER)

            $str .=  '<a title="Newser"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_news.png" alt="" title=""></a>';

        else if($sex===HOMME && $value=="")

            $str .=  '<a title="Membre Homme"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_homme.png" alt="" title=""></a>';

        else if($sex===FEMME && $value=="")

            $str .=  '<a title="Membre Femme"><img class="super_mini_avatar_inscrit" src="avatar/avatar_par_default/avatar_femme.png" alt="" title=""></a>'; 

        else

        {

            $str .= '<img class="super_mini_avatar_inscrit" alt="" title=""src="avatar/avatar_membres/'.$value.'"/>';

        }

    }

    $str .= ($alignCenter) ? "</div>" : '';

    

    return $str;
    }
}

function UpdateAvatarById($mid,$IAvt='avatar'){
	global $pdo;
	
	if(isset($_FILES[$IAvt]) && !empty($_FILES[$IAvt]['name']))
				{
					$avatarName = basename($_FILES[$IAvt]['name']);
					$target = "avatar/avatar_membres/".$avatarName ;
				
					$$isImageValid = true;
					
					$avatarSize = getimagesize($_FILES[$IAvt]['tmp_name']);
					$extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
				
					$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
					$messageImage = '';
					
					if($avatarSize[0]>500 || $avatarSize[1]>500)
					{
						$isImageValid = false;
						$messageImage .= 'Votre image fait plus de 500 sur 500'; 
					}
					if(!in_array($extension_upload,$extensions_valides))
					{
						$isImageValid = false;
						$messageImage .= 'Votre extension d\'image n\'est pas acceptée, extentions valides : ';
							foreach($extensions_valides as $v)
								$messageImage .= $v . ' '; 
					}
					if($isImageValid){
						$temp = $_FILES[$IAvt]['tmp_name'];
						
							$query = $pdo->prepare("UPDATE forum_membres SET membre_avatar=? WHERE membre_id=?");
								$query->execute(array($temp,$mid));
							if($query->rowCount() < 1)
								return array("ERROR" => "Impossible de modifier l'avatar d'un membre introuvable, merci de contacter le support en specifiant le code d'erreur 0x" . ord("FUNC_UPD_AVT_ERROR_MEMBER404"));
							else{
								move_uploaded_file($temp,$target);
								return array("ERROR" => null);
							}
					}else{
						return array("ERROR" => $messageImage);
					}
				}else{
					return array("ERROR" => "Merci choisir une image avant d'envoyer le formulaire");	
				}
}

function GetAgeById($membreId)

{

    $data1 = GetValueFromQuery("SELECT membre_date_de_naissance AS value FROM forum_membres WHERE membre_id=".$membreId);

    	$ex = explode("/",$data1);
	$mois = (@$ex[1] < 10 && substr(@$ex[1],0,1) != 0) ? "0" . @$ex[1] : @$ex[1];


	if($mois >= date('m') && $ex[0] > date('d'))
		$age = intval(date('Y')  - @$ex[2]) - 1;
	else
		$age = intval(date('Y')  - @$ex[2]);

	return ($age. ' An'.(($age > 1) ? 's' : ''));
}

function GetPrenomById($membreId)
{

    $data1 = GetValueFromQuery("SELECT membre_prenom AS value FROM forum_membres WHERE membre_id=".$membreId);

	return $data1;
}
function GetVilleById($Id)
{
	if(ctype_digit($Id))
	{
		$sql = "SELECT ville AS value FROM forum_localisation WHERE id=".$Id;
    	$data1 = GetValueFromQuery($sql);
    	
    	return EON($data1);
	}

	return EON("");
}

function getLastPeopleJoin($limit=5,$sex=HOMME){

		global $pdo;

		

			if($limit==false || $limit==null)

				$limit = "";

			else

				$limit =  " LIMIT " . $limit;

				

		//Les pseudo des evenements sont sur une plages <= � membre_id=10

			$req = $pdo->prepare("SELECT membre_id FROM forum_membres WHERE membre_sexe=? AND membre_id>10 GROUP BY membre_id DESC ORDER BY membre_id DESC".$limit);

			$req->execute(array($sex));

			

				$info['listMember'] = '';

			

			$i=0;

				while($member = $req->fetch()){

					if($member["membre_id"] > 10)
							$info['listMember'] .= sex2color($sex,$member['membre_id']).',';
					
						$i++;

				}
				
				$info['listMember'] = substr($info['listMember'],0,-1);

			if($i==0)

				$info['listMember'] = "Pas d'inscrits pour le moment";

				

			$info['countMember'] = $i;

			return $info;

	}
	
	//function getParseAvatar permet de renvoyer la balise img avatar ad�quat.Si le membre en n'a pas on verifie si il est admin ou modo ou si il est un homme ou une femme pour mettfre un avatar par defaut. Sinon on retourne la balise ayant le lien vers son avatar.

	//@Str : $avatarName

	//@Int : $membre_id = 0

	//Return String

	

	function getParseAvatar($avatarName,$membre_id=0,$class='')

	{

		$id = ($membre_id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($membre_id);

		$rang = id2level($id);

		$sex = id2sex($id);

		$avatarName = htmlspecialchars($avatarName);

		

		

		if(empty($avatarName))

		{

			if($rang == ADMIN)

				$avatar = '<img class='.$class.' src="' . DIR_AVATAR . '/avatar_par_default/avatar_admin.png" alt="" title="" />';

			else if($rang == MODO)

				$avatar = '<img class='.$class.' src="' . DIR_AVATAR . '/avatar_par_default/avatar_modo.png" alt="" title="" />';

			else if($sex == HOMME)

				$avatar = '<img class='.$class.' src="' . DIR_AVATAR . '/avatar_par_default/avatar_homme.png" alt="" title="" />';

			else if($sex == FEMME)

				$avatar = '<img class='.$class.' src="' . DIR_AVATAR . '/avatar_par_default/avatar_femme.png" alt="" title="" />';

			else

				$avatar = '<img class='.$class.' src="' . DIR_AVATAR . '/avatar_par_default/avatar_question.png" alt="" title="" />';

		}else{

			$avatar = '<img src="' . DIR_AVATAR . '/avatar_membres/' . $avatarName . '" alt=""  title="" />';	

		}

		

		return $avatar;

	}
	
	//function sex2color permet de colorer un pseudo selon le sex du membre, cas special pour modo et admin
	//@Str : $sex
	//Return Str

       function estHomme($membreId)
       {
           if(id2sex($membreId)==HOMME)
               return true;
           return false;
       }

	function sex2color($sex,$id=-1)
	{

		$rang = ($id==-1) ? $id : id2level($id);
		$pseudo = str_replace(array(chr(0),"\n",""),"",id2pseudo($id)); //Recuperation du pseudo selon l'id

		if($rang == ADMIN)
			$class = "admin_color";
		elseif($rang == MODO)
			$class = "modo_color";
		elseif($rang==NEWSER)
			$class = "newser_color";
		elseif($rang ==PARTENAIRE)
			$class = "partenaire_color";
		elseif($rang == BANNI)
			$class = "banni_color";
		elseif($sex==HOMME)
			$class = "membre_color_homme";
		else
			$class = "membre_color_femme";

		//getLienModule(nomDuModule,nomDuFichier)
		/*if($id<11)
			return ($pseudo!='') ? $pseudo : 'N/C';
		else*/
		
		if($id==-1){
			if($sex==HOMME)
				return '<span class="'.$class.'">Homme</span>';
			else
				return '<span class="'.$class.'">Femme</span>';
			
		}else{
				return ($pseudo!='') ? '<a href="' . getLienModule('membre', 'profil') . '?uname=' . $pseudo . '" title="" ><span class="'.$class.'">'.$pseudo.'</span></a>' : 'Compte fermé';
		}
	}

	//function sex2color permet de colorer un pseudo selon le sex du membre, cas special pour modo et admin (fonction manuel, sans css avec lien static pour les mail)
	//@Str : $sex
	//Return Str
	function sex2ManualColor($sex,$id)
	{
		$rang = id2level($id);
		$pseudo = id2pseudo($id); //Recuperation du pseudo selon l'id
		if($rang == ADMIN)
			$class = "color:#FF6666;";
		elseif($rang == MODO)
			$class = "color:#00CC00;";
		elseif($rang == NEWSER)
			$class = "color:#00EE00;";
		elseif($rang==PARTENAIRE)
			$class = "color:#420042";
		elseif($sex==HOMME)

			$class = "color:#0099CC;";
		else
			$class = "color:#FF00FF;";

		//getLienModule(nomDuModule,nomDuFichier)
		if($id<11)
			return ($pseudo!='') ? $pseudo : 'Compte fermé';
		else
			return ($pseudo!='') ? '<a style="text-decoration:none" href="http://leprojet.legtux.org/' . getLienModule('membre', 'profil') . '?uname=' . $pseudo . '" title=""><span style="'.$class.'">'.$pseudo.'</span></a>' : 'Compte Fermé';
	}

	function groupe2name($groupeID)

	{
		global $a_groupe;
		$return = '';

		/*if($groupeID == 0)

			$return = "<span class=\"banni_color\"><s>Banni</s></span>";

		else if($groupeID == MEMBRE)

			$return = "<span class=\"membre_color\">Membre</span>";

		else if($groupeID == 1)

			$return = "<span>Vu par tous (Visiteurs y compris)</span>";

		else if($groupeID == NEWSER)

			$return = "<span class=\"newser_color\">Newser</span>";
		else if($groupeID == PARTENAIRE)

			$return = "<span class=\"partenaire_color\">Partenaire</span>";

		else if($groupeID == MODO)

			$return = "<span class=\"modo_color\">Modérateur</span>";

		else if($groupeID == ADMIN)

			$return = "<span class=\"admin_color\">Administrateur</span>";

			*/
			
				if(isset($a_groupe[$groupeID])){
					$return = "<span class=\"".$a_groupe[$groupeID]."_color\">".$a_groupe[$groupeID]."</span>";
				}

		return $return;

	}

	

	//function isLogged permet de savoir si le webnaute est connect�

	//Return Bool

	

	function isLogged()

	{

		return (isset($_SESSION['id'])) ? true : false;	

	}
	
	function getNumberFriendsOnline(){
		global $pdo;
		$req = $pdo->prepare('SELECT COUNT(*) as val FROM forum_amis JOIN forum_whosonline AS fw ON fw.membre_id=ami_to WHERE ami_confirm="1" AND (ami_ignore != "1" OR ami_ignore IS NULL) AND (ami_to='.$_SESSION['id'].' OR ami_from='.$_SESSION['id'].') AND fw.membre_id!='.$_SESSION['id'].' GROUP BY membre_id');
		$req->execute();
		$result = $req->fetch();	
			return ($result['val']!="") ? $result['val'] : 0;	
	}
	
	function getNumberFriends(){
		global $pdo;
		$req = $pdo->prepare('SELECT COUNT(*) as val FROM forum_amis WHERE ami_confirm="1" AND (ami_ignore != "1" OR ami_ignore IS NULL) AND (ami_to='.$_SESSION['id'].' OR ami_from='.$_SESSION['id'].') GROUP BY ami_to,ami_from');
		$req->execute();
		$result = $req->fetch();	
			return ($result['val']!="") ? $result['val'] : 0;	
	}
	
	function getNumberFriendsOffline(){
		global $pdo;
		$req = $pdo->prepare('SELECT COUNT(*) as val FROM forum_amis WHERE (ami_to='.$_SESSION['id'].' OR ami_from='.$_SESSION['id'].') 
AND (ami_to NOT IN(SELECT membre_id FROM forum_whosonline))
OR (ami_from NOT IN(SELECT membre_id FROM forum_whosonline)) AND (ami_confirm="1" AND ami_ignore="0")
GROUP BY ami_to,ami_from');
		$req->execute();
			$result = $req->fetch();	
			return ($result['val']!="") ? $result['val'] : 0;	
	}

	//function id2zodiaque permet de r�cuperer le zodiaque du compte membre depuis l'id de session ou l'id transmit en argument

	//@Int : $id

	//Return Str

	function id2zodiaque($id=0)

	{

		global $pdo;

		$id = ($id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($id);

		$zodiaque = $pdo->prepare("SELECT membre_zodiaque AS zodiaque FROM forum_membres WHERE membre_id=:id");

		$zodiaque->bindParam(":id",$id);

		$zodiaque->execute();

		

		$res = $zodiaque->fetch();

		$zodiaque->closeCursor();

		return $res["zodiaque"];

	}
	
	function pseudo2id($pseudo='')
	{
		global $pdo;
		$id = $pdo->prepare("SELECT membre_id FROM forum_membres WHERE membre_pseudo=?");
		$id->execute(array($pseudo));
		$res = $id->fetch();
		$id->closeCursor();
		return $res["membre_id"];
	}

	//function id2sex permet de r�cuperer le sex du compte membre depuis l'id de session ou l'id transmit en argument
	//@Int : $id
	//Return Str
	//By infoxp
	function id2sex($id=0)
	{
		global $pdo;
		$id = ($id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($id);
		$sex = $pdo->prepare("SELECT membre_sexe AS sex FROM forum_membres WHERE membre_id=:id");
		$sex->bindParam(":id",$id);
		$sex->execute();

		$res = $sex->fetch();
		$sex->closeCursor();

		return $res["sex"];
	}

	//function id2mail permet de r�cuperer le mail du compte membre depuis l'id de session ou l'id transmit en argument
	//@Int : $id
	//Return Str
	//By infoxp
	function id2mail($id=0)
	{

		global $pdo;

		$id = ($id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($id);

		$mail = $pdo->prepare("SELECT membre_email AS mail FROM forum_membres WHERE membre_id=:id");

		$mail->bindParam(":id",$id);

		$mail->execute();

		$res = $mail->fetch();

		$mail->closeCursor();

		return $res["mail"];

		

	}
	
	//function auth permet de definir le niveau d'accesibilit� du module : Membre , admin , modo , touts le mondes

	//@Int : $level

	//Return void

	function auth($level,$authNoConnect=false,$greater_than=false)

	{

		global $pdo;

		if(isset($_SESSION["id"]))

		{

			$authorize = id2level();

			if(($greater_than and $authorize < $level) or (!$greater_than and $authorize > $level))

			{
				if($authNoConnect)
					redirect('Vous devez être en mode non connecté pour accedez à cette page !');
				else
					redirect('Vous n\'avez pas les droits nécessaires pour accéder à cette page.');

			}

		}

		else 

		{

			// cookie authentification

			$cookieAuth = (isset($_COOKIE['savedSession']) ? $_COOKIE['savedSession'] : null);

			if($cookieAuth)

			{

				$membre = Explode(",",$cookieAuth);

			

				$req = $pdo->prepare("SELECT *, membre_id as id,membre_mdp as passwd FROM forum_membres WHERE membre_id=:id");

				$req->bindParam(":id",$membre[0],PDO::PARAM_STR);

				$req->execute();

				$data = $req->fetch();

				$req->closeCursor();

				

				if(Substr($data['passwd'],0,2) == $membre[1])

				{

					$_SESSION["id"] = $membre[0];

					$_SESSION["pseudo"] = $data['membre_pseudo'];

					$tmp = new Groupe();

					$_SESSION['privilege'] = $tmp->ChercherPrivileges($_SESSION['id']);

				}

			}

		

			if(!isset($_SESSION["id"]) and !$authNoConnect)

			{

				redirect('Vous devez être connecté pour accedez à cette page !');

			}

			else

			{

				if($level > 1)

					redirect('Vous devez être en mode non connecté pour accedez à cette page !');

			}

		}

	}

	

	//function id2level permet de r�cuperer le niveau du compte membre depuis l'id de session ou l'id transmit en argument

	//@Int : $id

	//Return int

	function id2level($id=0)

	{

		global $pdo;

		$id = ($id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($id);

		$levelP = $pdo->prepare("SELECT membre_rang FROM forum_membres WHERE membre_id=:id");

		$levelP->bindParam(":id",$id,PDO::PARAM_INT);

		$levelP->execute();

		

		$res = $levelP->fetch();

		

		if($levelP->rowCount() < 1)

			$res["membre_rang"] = 1;

			

		$levelP->closeCursor();

		return $res["membre_rang"]; 

		

	}

	

	//function id2pseudo permet de r�cuperer le pseudo du compte membre depuis l'id de session ou l'id transmit en argument

	//@Int : $id

	//Return Str

	

	function id2pseudo($id=0)

	{

		global $pdo;

		$id = ($id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($id);

		$pseudo = $pdo->prepare("SELECT membre_pseudo FROM forum_membres WHERE membre_id=:id");

		$pseudo->bindParam(":id",$id,PDO::PARAM_INT);

		$pseudo->execute();

			

		$res = $pseudo->fetch();

		$pseudo->closeCursor();

		return $res["membre_pseudo"];

		

	}
	
	function id2prenom($id=0){
		
		global $pdo;

		$id = ($id == 0 and isset($_SESSION["id"])) ? intval($_SESSION["id"]) : intval($id);

		$pseudo = $pdo->prepare("SELECT membre_prenom FROM forum_membres WHERE membre_id=:id");

		$pseudo->bindParam(":id",$id,PDO::PARAM_INT);

		$pseudo->execute();

			

		$res = $pseudo->fetch();

		$pseudo->closeCursor();

		return $res["membre_prenom"];
	}
	
	function status2id($id=-1){
			global $pdo;
			if($id>-1){
				$query = $pdo->prepare("SELECT membre_status FROM forum_membres WHERE membre_id=?");
				$query->execute(array($id));
				
				return $query->fetchColumn();
			}else
				echo 'Status indeterminé';
	}
	
	function statusMsg2id($id=-1){
		global $pdo;
			if($id>-1){
				$query = $pdo->prepare("SELECT membre_status_msg FROM forum_membres WHERE membre_id=?");
				$query->execute(array($id));
				
				return $query->fetchColumn();
			}else
				echo '';
	}
	
	function connexion(array $data){
	global $pdo;
	

	$tmp = new Groupe();
				
						$_SESSION["id"] = intval($data["membre_id"]);
						$_SESSION['privilege'] = $tmp->ChercherPrivileges($_SESSION['id']);	
						
				
						if(isset($_POST["saveSession"]) && $_POST["saveSession"]=="on")
							setcookie("savedSession",intval($_SESSION["id"]) . "," . substr(sha1($_POST["passwd"]),0,4),time() + (90*24*3600));
							
						//echo $lien_index;
						
						//$_SESSION["login"] = $_POST["pseudo"];
						deletePeopleLocated(false,true);
						deletePeopleOnline(false,true);
						updatePeopleOnline();
						memberUpdateConnected(true);
						memberUpdateTimeVisite(true);
						$status = 'En ligne';
						$statusMsg = '';
						if(isset($_POST['status'])&&$_POST['status']=="En ligne"||$_POST['status']=="Absent"||$_POST['status']=="Hors ligne")
						{
							$status = $_POST['status'];
							$statusMsg = '';
								if(isset($_POST['statusMsg'])&&$_POST['status']=="Absent")
									$statusMsg = $_POST['statusMsg'];
						}
						
						$ustatus = $pdo->prepare("UPDATE forum_membres SET membre_status=?,membre_status_msg=? WHERE membre_id=?");
						$ustatus->execute(array($status,$statusMsg,$data['membre_id']));
						redirect('Bienvenue '. sex2color($data["membre_sexe"],$data["membre_id"]),getSavedUrl());	
	}


	/* si on à activé la case connexion automatique */
	
	
	function auto_connexion(){
		global $pdo;
		if(isset($_COOKIE['savedSession'])){
			
			$cookie = $_COOKIE['savedSession'];
			$data = explode(',',$cookie,2);
				$id = $data[0];
				$signaturePasswd = $data[1];
				
			$query = $pdo->prepare("SELECT membre_mdp,membre_id FROM forum_membres WHERE membre_id=?");
			$query->execute(array($id));
			
			$fetch = $query->fetch(PDO::FETCH_OBJ);
			
				if(substr($fetch->membre_mdp,0,4)==$signaturePasswd){
					connexion($fetch);
				}else{
					redirect("Votre sauvegarde de session à expiré, veuillez réutilliser le formulaire de connexion ci-dessous pour vous reconnecter !",getLienModule("membre","connexion"));
				}
		}
	}
	
	function bonus($membre_id,$type,$value=0){
		global $pdo;
		$type=strtoupper($type);
		$value = intval($value);
		if($type=="ADD"||$type=="AJOUTER"){
			$query = $pdo->prepare("UPDATE forum_membres SET membre_bonus=membre_bonus+? WHERE membre_id=?");
			$query->execute(array($value,$membre_id));
			
			return $query;
		}else if($type=="REMOVE"||$type=="RETIRER"||$type=="ENLEVER"){
			$query = $pdo->prepare("UPDATE forum_membres SET membre_bonus=membre_bonus-? WHERE membre_id=?");
			$query->execute(array($value,$membre_id));
			
			return $query;
		}else if($type=="GET"||$type=="VOIR"){
			$query = $pdo->prepare("SELECT membre_bonus FROM forum_membres WHERE membre_id=?");
			$query->execute(array($membre_id));
			
			return $query->fetchColumn();
		}
	}

?>